import 'package:shared_preferences/shared_preferences.dart';

class SharedPreferencesManager {
  static final SharedPreferencesManager _instance = SharedPreferencesManager._internal();

  factory SharedPreferencesManager() {
    return _instance;
  }

  SharedPreferencesManager._internal();

  SharedPreferences? _prefs;

  Future<bool> init() async {
    _prefs = await SharedPreferences.getInstance();
    return _instance != null;
  }

  // 读取bool类型的数据
  bool getBool(String key, {bool defaultValue = false}) {
    return _prefs?.getBool(key) ?? defaultValue;
  }

  // 保存bool类型的数据
  Future<bool>? setBool(String key, bool value) {
    return _prefs?.setBool(key, value);
  }

  // 读取String类型的数据
  String getString(String key, {String defaultValue = ''}) {
    return _prefs?.getString(key) ?? defaultValue;
  }

  // 保存String类型的数据
  Future<bool>? setString(String key, String value) {
    return _prefs?.setString(key, value);
  }

  // 读取int类型的数据
  int getInt(String key, {int defaultValue = 0}) {
    return _prefs?.getInt(key) ?? defaultValue;
  }

  // 保存int类型的数据
  Future<bool>? setInt(String key, int value) {
    return _prefs?.setInt(key, value);
  }

  // 清除指定key的数据
  Future<bool>? remove(String key) {
    return _prefs?.remove(key);
  }

  // 清除所有数据
  Future<bool>? clear() {
    return _prefs?.clear();
  }
}
